A bandwidth generally refers to the amount of data that can be transmitted through the network per unit of time. Due to buffering and queuing of data en route to a destination device through a packet-switched network, the bandwidth fluctuates during the communication session. However, an accurate estimation of bandwidth is useful in many occasions. For instance, for playing back live media stream acquired over the Internet, an accurate estimation of bandwidth is essential in providing high quality user experience. The estimated bandwidth helps to determine a sufficient amount of media content to buffer before starting playback of the media content to ensure there will be no interruption during the playback.
In order to accurately estimate bandwidth, an initial bandwidth estimate is often handicapped. Handicapping an initial bandwidth estimate means presuming less bandwidth than the bandwidth estimate to account for bandwidth fluctuations. In the past, handicapping is often accomplished by applying a fixed value or a fixed percentage to the initial bandwidth estimate. However, the handicapped bandwidth derived by using this common technique sometimes suffers inaccuracies because it does not take bandwidth fluctuations into account. As a result, the revised bandwidth estimate is too conservative (i.e., too small) when the network bandwidth is quite stable, causing unnecessary delay in starting the playback. On the other hand, the revised bandwidth estimate is not conservative enough when the network bandwidth is wildly fluctuating, causing interruptions during the playback.